# readme 面向对象，属性和方法
# 私有属性：属性前面加2个下划线，则属性变成私有属性
# 私有方法：方法前面加2个下划线，则方法变成私有方法
class Person():
    def __init__(self):
        # self.__name = ''
        pass

    def set_name(self, name):
        self.__name = name

    def get_name(self):
        return self.__name

    def set_age(self, new_age):
        if (new_age > 0 and new_age < 100):
            self.age = new_age
        else:
            print("年龄不合法，默认赋值为18岁.")
            self.age = 18

    def get_age(self):
        return self.age

    # 私有方法
    def __eat(self):
        print("这是一个私有的方法eat.")
    
    def eat(self):
        self.__eat()


p1 = Person()
# 年龄无判断逻辑，可以任意赋值
p1.age = -10
print(p1.get_age())
p1.set_age(-1)
print(p1.get_age())
p1.set_age(19)
print(p1.get_age())
p1.set_age(100)
print(p1.get_age())

p1.set_name("小明")
print(p1.get_name())

p1.eat()
